package cn.i7baozh.alibaba.sentinel.handler;

import cn.i7baozh.cloud.api.dto.ReturnResponse;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 写这个方法的目的是查看sentinel抛出来的blockException 能否被spring这种全局异常捕获和处理。
 *
 * 结论为不能。
 * 只能通过实现BlockExceptionHandler的方式处理
 * @see MyBlockExceptionHandler
 * @author zhangbaoqi532
 * @date 2024/12/30
 */
@RestControllerAdvice
public class MyControllerExceptionHandler {


    @ExceptionHandler({RuntimeException.class, Exception.class})
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public ReturnResponse<String> exception(Exception e) {
        return ReturnResponse.fail("501", "出错了");
    }
}
